题目描述
实现函数 makeClosures,调用之后满足如下条件:
1、返回一个函数数组 result,长度与 arr 相同
2、运行 result 中第 i 个函数,即 resulti,结果与 fn(arr[i]) 相同
输入例子:
var arr = [1, 2, 3];
var square = function (x) {
return x * x;
};
var funcs = makeClosures(arr, square);
funcs[1]();
输出例子:
4
answer:
function makeClosures(arr, fn) {
var funs = [];
for(var i = 0; i < arr.length; ++i) {
(function(num){
var temp = function() {
return fn(num);
}
funs.push(temp);
})(arr[i]);
}
return funs;
}
why use anonymous function here?
curry,
toString
parseInt
for in loop